package com.example.view;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.recyclerview.widget.RecyclerView;

import java.util.List;

public class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.ViewHolder> {

    // 我们会在后面定义 ViewHolder 类

    // 数据源，根据实际需求定义
    private List<String> myDataset;

    // 提供一个合适的构造方法（取决于数据类型）
    public MyRecyclerViewAdapter(List<String> myDataset) {
        this.myDataset = myDataset;
    }

    // 创建新的 views (被 layout manager 调用)
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        // 创建一个新视图
        View v = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.my_text_view, parent, false);

        // 此处设置布局管理器所需的视图参数等

        return new ViewHolder(v);
    }
    // 替换视图的内容 (被 layout manager 调用)
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        // 在此处获取元素，并替换视图内容
        holder.textView.setText(myDataset.get(position));
    }
    // 返回数据集的大小 (被 layout manager 调用)
    @Override
    public int getItemCount() {
        return myDataset.size();
    }
    // 提供一个参考给视图的视图持有类
    // 复杂数据项可能需要给每个项提供多个视图，此时可以使用 view holder
    public static class ViewHolder extends RecyclerView.ViewHolder {
        // 在此处定义数据项的组件
        public TextView textView;
        public ViewHolder(View v) {
            super(v);
            textView = v.findViewById(R.id.my_text_view);
        }
    }
}